1. Field of the Invention
This invention generally relates to the production of documents, particularly web pages for transfer over communications paths, such as the Internet, and more specifically to a method and apparatus for facilitating the processes by which such documents are developed and transmitted.
2. Description of Related Art
A significant number of industries now use web pages to communicate information over the world wide web or Internet. Web servers transmit these web pages in response to requests from users on the Internet. Simple web pages may merely convey information as a static page. More complex web pages allow user interaction to select categories of information. Still others allow users to effect commerce through the purchase of goods and services.
Some companies use the Internet as an adjunct to their businesses. Other businesses deal exclusively over the Internet. They rely entirely on the transmittal of web pages by a web server to a user. As a result there is a requirement that a web site be current, and this necessitates a web page developer or designer to produce additional web pages and to modify the content of and the appearance of web pages from time to time.
The increasing demand for producing and maintaining such web pages has spawned a web page development industry. Large numbers of individuals and organizations now develop and maintain web pages for their own purposes and for use by others. These web page developers use one of two dominant approaches for web page development. With one, the web page developer actually writes code that defines the appearance of each web page and establishes all the control for controlling dynamic content within a web page and web page sequences (i.e., web page “semantics”). When the web server processes the code, it generates a string that produces the code necessary to display the header and body of each web page, such as the predominate HTML code. Any change to the semantics or appearance of a web page requires a developer to modify the code. To add a web page that is based almost entirely on a previously developed web page, all the code for that prior web page must be copied and then modified. The process for changing such code can be very time consuming and complex even in dealing with some simple web pages.
U.S. Pat. No. 5,987,480 to Donohoue et al. depicts an example of a second approach sometimes referred to as a “active page server” tool. In accordance with this approach, a web page server stores the HTML, or other code required for generating a web page, such as HTML code, with all the header and body information as a complete web page or template. These pages include the HTML code that controls the appearance of the web page and other code that controls web page semantics. In the Donohoue et al. patent this other code uses “@” as a symbol that defines paired delimiters. During the processing of a particular web page or template, a web server locates these symbols or delimiters. The web server then interprets each character string between paired delimiters. In the Donohoue et al. patent, these character strings can define a dynamic tag, an “if” instruction or a “loop” instruction, If the character string defines a dynamic tag, the value generated by the dynamic tag replaces the corresponding paired delimiters and dynamic tag. If the character string defines an “if” instruction, the system performs a defined action if a defined condition is met. If a “loop” instruction is included, all the values during each loop operation replace the paired delimiters and “loop” instruction. Once all this information is complete, the web server sends the HTML code with the embedded values to the browser. As with the first approach, a web page or template in an active page system also establishes web page semantics.
The merging of web page semantics and appearance in the code for a web page in either approach introduces complexities for developers that are difficult to manage and track. As an example, the Donohoue et al. patent describes different versions of a web page available for different browsers. Each web page then must include some means of determining the conditions under which it, rather than a parallel web page, is selected for display. In the Donohoue et al. patent the path for the web page is changed. If a web page exists, the system changes the URL address. At many web sites, different individuals may have general or special access to the web page server. In this case it may be desirable to make some pages if available to both users with both general and special access privileges and to make other web pages only available to users with special access privileges. In still other web page applications it may be desired to use the same basic web page to display different information from different data tables that supply this information. Prior art web servers contain a separate web page for each application.
In many cases a web site is actually located in two sites. A working version is located on an on-line web server. A copy of that version, working revisions, past versions and information for other web sites (e.g., other instantiations) may also reside on the developer's server or development system. Generally a web developer isolates each of the instantiations. If they do not, a change in one could produce changes in another. For example, assume a developer produces a web site version and installs it on a web server. Then assume at a later date a change is made to the developer's development system. This can cause or require changes to the web site on the development system that would not be accepted on the web server. Consequently, these situations further complicate web site development and management.
With this background, it will be apparent that, the management of variations and changes in such sophisticated web page servers becomes extremely difficult. What is needed is a web page server that enables web page developers to generate web page applications that separate web page semantics and appearance information and that enables a developer to build applications that can benefit from prior developments of other applications.